package io.renren.common.utils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

import com.alibaba.fastjson.JSON;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


/**
 * <b>辅助工具类</b>
 * 
 * @author xiongchun
 * @since 1.0
 * @date 2009-1-22
 */
@SuppressWarnings("all")
public class EBPUtils {

	private static Logger log = LoggerFactory.getLogger(EBPUtils.class);

	/**
	 * 日期格式
	 */
	public static final String DATA = "yyyy-MM-dd";

	/**
	 * 日期时间格式
	 */
	public static final String DATATIME = "yyyy-MM-dd HH:mm:ss";

	/**
	 * 返回缺省格式的当前日期时间字符串 默认格式:yyyy-mm-dd hh:mm:ss
	 *
	 * @return String
	 */
	public static String getDateTimeStr() {
		return getDateTimeStr("yyyy-MM-dd HH:mm:ss");
	}

    /**
     * 返回指定格式的当前日期时间字符串
     *
     * @param format
     * @return
     */
    public static String getDateTimeStr(String format) {
        String returnStr = null;
        SimpleDateFormat f = new SimpleDateFormat(format);
        Date date = new Date();
        returnStr = f.format(date);
        return returnStr;
    }

	/**
	 * 返回自定义格式的当前日期时间字符串
	 *
	 * @param format
	 *            格式规则
	 * @return String 返回当前字符串型日期时间
	 */
	public static String getDateStr(String format) {
		String returnStr = null;
		SimpleDateFormat f = new SimpleDateFormat(format);
		Date date = new Date();
		returnStr = f.format(date);
		return returnStr;
	}

	/**
	 * 返回自定义格式的当前日期时间字符串
	 *
	 * @param format
	 *            格式规则
	 * @return String 返回当前字符串型日期时间
	 */
	public static String getDateStr(Date date,String format) {
		String returnStr = null;
		SimpleDateFormat f = new SimpleDateFormat(format);
		returnStr = f.format(date);
		return returnStr;
	}

	/**
	 * 返回当前日期字符串 缺省格式：yyyy-MM-dd
	 *
	 * @return String
	 */
	public static String getDateStr() {
		return getDateStr("yyyy-MM-dd");
	}

	/**
	 * 返回当前日期字符串 缺省格式：yyyy-MM-dd
	 *
	 * @return String
	 */
	public static String getDateStr2() {
		return getDateStr("yyyyMMdd");
	}

    /**
     * 自动生成32位的UUid，对应数据库的主键id进行插入用。
     * @return
     */
    public static String getUUID() {
        return UUID.randomUUID().toString().replace("-", "");
    }

	/**
	 * Object转成JSON数据
	 */
	public static String toJson(Object object){
		if(object instanceof Integer || object instanceof Long || object instanceof Float ||
				object instanceof Double || object instanceof Boolean || object instanceof String){
			return String.valueOf(object);
		}
		return JSON.toJSONString(object);
	}

	/**
	 * JSON数据，转成Object
	 */
	public static <T> T fromJson(String json, Class<T> clazz){
		return JSON.parseObject(json, clazz);
	}
	/**
	 * 测试
	 * 
	 * @param args
	 */
	public static void main(String args[]) {

		  System.out.println(getUUID());
	}
}